我想获取我的ASP.NETCoreController的当前方法名称我试过通过反射获取方法名:[HttpGet]publicasyncTaskCreateProcess(intcatId){stringmethodName=System.Reflection.MethodBase.GetCurrentMethod().Name;但这给了我MoveNext而不是CreateProcess的值注意我不想使用ViewContextstringmethodName=ActionContext.RouteData.Values["action"].ToString();因为我通过启动设置将我的u
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C#ifstatementsmatchingmultiplevalues我经常发现自己编写的代码中变量可以是A或B,例如当我在转发器上调用OnItemDataBound时:protectedvoidrepeater_OnItemDataBound(objectsender,RepeaterItemEventArgse){if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){}}然后我经常想,一
我刚刚遇到了一些对我来说很奇怪的事情:当你在一个值类型上使用Equals()方法时(当然,如果这个方法没有被覆盖)你会得到一些非常非常慢-使用反射对字段进行一对一比较!如:publicstructMyStruct{inti;}(...)MyStructs,t;s.i=0;t.i=1;if(s.Equals(t))/*s.iwillbecomparedtot.iviareflectionhere.*/(...)我的问题:为什么C#编译器不生成比较值类型的简单方法?类似于(在MyStruct的定义中):publicoverrideboolEquals(Objecto){if(this.i=
我可能问错了,但是你能/怎么能在类中找到字段......例如......publicclassHtmlPart{publicvoidRender(){//this.GetType().GetCustomAttributes(typeof(OptionalAttribute),false);}}publicclassHtmlForm{privateHtmlPart_FirstPart=newHtmlPart();[Optional]//或者也许我只是做错了......我怎样才能调用一个方法然后检查应用到它自身的属性?此外,为了这个问题-我只是好奇是否有可能在不知道/访问父类的情况下找到属
Typet=obj.GetType();t.IsEnum;t.IsPrimitive;t.IsGenericTypet.IsPublic;t.IsNestedPublict.BaseTypet.IsValueTypeUWP中缺少上述所有属性。我现在如何检查这些类型? 最佳答案 面向UWP的C#应用使用两组不同的类型。您已经知道.NET类型,如System.String,但UWP特定类型实际上是幕后的COM接口(interface)。COM是互操作的super粘合剂,这也是您还可以使用Javascript和C++编写UWP应用程序的基
我注意到这段代码经常出现在我的构造函数中:if(someParam==null)thrownewArgumentNullException("someParam");if(someOtherParam==null)thrownewArgumentNullException("someOtherParam");...我有一些构造函数,其中注入(inject)了一些东西并且必须全部为非空。任何人都可以想出一种方法来简化这个吗?我唯一能想到的是以下内容:publicstaticclassExceptionHelpers{publicstaticvoidCheckAndThrowArgNull
作为我的应用程序的一部分,我有一个接收MethodInfo的函数,并且需要根据该方法是否为“扩展方法”对其执行特定操作。我检查了MethodInfo类,但找不到任何显示该方法是扩展的IsExtension属性或标志。有谁知道如何从方法的MethodInfo中找到它? 最佳答案 您可以在MethodInfo实例上调用IsDefined方法,通过检查ExtensionAttribute是否应用于该方法来找出这一点:boolisExtension=someMethod.IsDefined(typeof(ExtensionAttribute
我有一个关于如何确定对象的Nullable属性类型的问题。ObjectA有一个属性DateTime?创建日期;当我像下面的代码一样遍历其属性时,如何检查属性是否为NullableDateTime类型?foreach(PropertyInfopiinObjectA.GetType().GetProperties()){//dothecomparehere} 最佳答案 pi.PropertyType==typeof(DateTime?) 关于C#在使用反射时确定一个Nullable属性Dat
我发现很多情况下我自己认为我可以使用反射来解决问题,但我通常不会这样做,因为我听到很多类似的说法“不要使用反射,它太低效了”.现在我遇到了一个问题,除了使用newT()的反射,我找不到任何其他解决方案,如thisquestion&answer中所述。.所以我想知道是否有人可以告诉我反射的具体预期用途,以及是否有一套指导方针来指明何时合适,何时不合适? 最佳答案 它通常“足够快”,如果您需要更快(对于紧密循环等),您可以使用Expression或ILGenerator进行元编程(可能通过DynamicMethod),以制作极速的代码(
我是C#反射方面的绝对新手。我想使用反射来访问类中的所有私有(private)字段,包括继承的那些。我已成功访问所有私有(private)字段(继承的字段除外),以及所有公共(public)和protected继承字段。但是,我无法访问私有(private)的、继承的字段。以下示例说明:classA{privatestringa;publicstringc;protectedstringd;}classB:A{privatestringb;}classtest{publicstaticvoidMain(string[]Args){Bb=newB();Typet;t=b.GetType(